package com.sntk.organauthomanager.domain.model;

import cn.hutool.core.util.ReUtil;

/**
 * @ClassName: PasswordIntensityDetectionService
 * @author: wgchao
 * @createTime: 2021/1/25 10:52 AM
 * @Description: 密码强度检测
 */
public class PasswordIntensityDetectionService {

    /**
     * 检测密码强度
     * 密码强度，新建用户设置密码时，要求密码位数不低于8位，且必须包含强密码元素，大小写+数字；不允许弱密码；
     * @param password
     * @return
     */
    public boolean intensityDetection(String password){
        //检测正则表达式(至少8个字符，至少1个大写字母，1个小写字母和1个数字,不能包含特殊字符（非数字字母）)
        String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{8,}$";
        return ReUtil.isMatch(regex, password);
    }
}
